﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using BALayer;
using DAO;

namespace QuanLyDoiTuong
{
    public partial class ThemDoiTuong : Form
    {
        private string MaSoDoiTuong = "";
        private Boolean upDate = false;
        private UserDAO userLogin = new UserDAO();
        public ThemDoiTuong(UserDAO user)
        {
            InitializeComponent();
            this.userLogin = user;
        }

        public ThemDoiTuong(UserDAO user, string maDoiTuong, Boolean isUpdate)
        {
            InitializeComponent();
            this.userLogin = user;
            MaSoDoiTuong = maDoiTuong;
            if (isUpdate)
            {
                upDate = true;
                this.Text = "Cập Nhật Thông Tin Đối Tượng";
                this.btnInsert.Text = "Cập Nhật";
                this.txtMaDoiTuong.Enabled = false;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                cbbNhomDS.DataSource = LoaiDanhSachBA.selectLoaiDanhSachAll();
                cbbNhomDS.DisplayMember = "TenLoai";
                cbbNhomDS.ValueMember = "MaLoai";
                cbbNhomDS.SelectedIndex = -1;
                cbbGioiTinh.SelectedIndex = -1;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông Báo");
            }
            String format = "dd/MM/yyyyy";
            dateTimePicker1.CustomFormat = format;
            dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
            if (!"".Equals(MaSoDoiTuong))
            {
                setDataforForm();
            }
            
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            //goi ham them doi tuong
            if ("".Equals(txtMaDoiTuong.Text))
            {
                MessageBox.Show("Mã đối tượng chưa được nhập!", "Thông Báo");
                txtMaDoiTuong.Focus();
            }
            else if (-1 == cbbNhomDS.SelectedIndex)
            {
                MessageBox.Show("Loại đối tượng chưa được chọn!", "Thông Báo");
                cbbNhomDS.Focus();
            } 
            else if(-1 == cbbGioiTinh.SelectedIndex){
                MessageBox.Show("Giới tính của đối tượng chưa được chọn!", "Thông Báo");
                cbbGioiTinh.Focus();
            }
            else 
            {
                LyLichDoiTuongDAO doiTuong = new LyLichDoiTuongDAO();
                doiTuong.CapBac = txtCapBac.Text;
                doiTuong.ChucVu = txtChucVu.Text;
                doiTuong.DangPhai = txtDangPhai.Text;
                doiTuong.GioiTinh = cbbGioiTinh.Text.Trim();
                doiTuong.HoatDongChuY = rtxtHoatDong.Text;
                doiTuong.HoVaTen = txtTenDoiTuong.Text;
                doiTuong.KetQuaKDKD = txtKQKDKD.Text;
                doiTuong.MaLoai = Int32.Parse(cbbNhomDS.SelectedValue.ToString());
                doiTuong.MaDoiTuong = txtMaDoiTuong.Text;
                doiTuong.NamSinh = dateTimePicker1.Text;
                doiTuong.NgheNghiep = txtNgheNghiep.Text;
                doiTuong.NoiOHienNay = txtNoiO.Text;
                doiTuong.QueQuan = txtQueQuan.Text;
                doiTuong.TenKhac = txtTenKhac.Text;
                doiTuong.ThoiGianCaiTao = txtThoiGianCT.Text;
                if (upDate)
                {
                    try
                    {
                        int result = LyLichDoiTuongBA.updateDoiTuong(doiTuong);
                        if (result == 1)
                        {
                            MessageBox.Show("Cập nhật thông tin đối tượng thành công!", "Thông Báo");
                            cbbNhomDS.Focus();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Thông Báo");
                    }
                    
                }
                else
                {
                    if (!LyLichDoiTuongBA.checkDoiTuong(doiTuong.MaDoiTuong))
                    {
                        try
                        {
                            int result = LyLichDoiTuongBA.insertDoiTuong(doiTuong);
                            if (result == 1)
                            {
                                MessageBox.Show("Thêm đối tượng thành công!", "Thông Báo");
                                clearControl();
                                cbbNhomDS.Focus();
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Thông Báo");
                        }
                        
                    }
                    else
                    {
                        MessageBox.Show("Đã tồn tại đối tượng có mã là: " + doiTuong.MaDoiTuong);
                        txtMaDoiTuong.Focus();
                    }
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            if (upDate)
            {
                setDataforForm();
            }
            else
            {
                clearControl();
            }
        }
        private void clearControl()
        {
            txtCapBac.Text = "";
            txtChucVu.Text = "";
            txtDangPhai.Text = "";
            cbbGioiTinh.SelectedIndex = -1;
            rtxtHoatDong.Text = "";
            txtTenDoiTuong.Text = "";
            txtKQKDKD.Text = "";
            cbbNhomDS.SelectedIndex = -1;
            dateTimePicker1.Value = DateTime.Today;
            txtNgheNghiep.Text = "";
            txtNoiO.Text = "";
            txtQueQuan.Text = "";
            txtTenKhac.Text = "";
            txtThoiGianCT.Text = "";
            txtMaDoiTuong.Text = "";
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            if (upDate)
            {
                Form frmQLDanhSachDT = new QLDanhSachDoiTuong(userLogin);
                frmQLDanhSachDT.Show();
                this.Close();
            }
            else
            {
                Form frmMenu = new FrmManHinhChinh(userLogin);
                frmMenu.Show();
                this.Close();
            }
        }
        private void setDataforForm()
        {
            try
            {
                LyLichDoiTuongDAO doiTuong = LyLichDoiTuongBA.getDoiTuong(MaSoDoiTuong);
                //hien thi thong tin doi tuong len form
                txtCapBac.Text = doiTuong.CapBac;
                txtChucVu.Text = doiTuong.ChucVu;
                txtDangPhai.Text = doiTuong.DangPhai;
                cbbGioiTinh.SelectedItem = doiTuong.GioiTinh;
                rtxtHoatDong.Text = doiTuong.HoatDongChuY;
                txtTenDoiTuong.Text = doiTuong.HoVaTen;
                txtKQKDKD.Text = doiTuong.KetQuaKDKD;
                txtNgheNghiep.Text = doiTuong.NgheNghiep;
                txtNoiO.Text = doiTuong.NoiOHienNay;
                txtQueQuan.Text = doiTuong.QueQuan;
                txtTenKhac.Text = doiTuong.TenKhac;
                txtThoiGianCT.Text = doiTuong.ThoiGianCaiTao;
                txtMaDoiTuong.Text = doiTuong.MaDoiTuong.ToString();
                cbbNhomDS.SelectedValue = doiTuong.MaLoai;

                dateTimePicker1.Value = DateTime.ParseExact(doiTuong.NamSinh, "dd/MM/yyyy", null);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Thông Báo");
            }
            
        }
    }
}
